
package com.tencent.weibo.api
{
	import com.tencent.weibo.log.LevelLogger;
	import com.tencent.weibo.operation.IRequestOperation;
	import com.tencent.weibo.operation.URLRequestOperation;
	
	import flash.events.IEventDispatcher;
	
	import mx.logging.ILogger;
	
	/**
	 * 热度，趋势相关的API
	 * @langversion 3.0
	 * @playerversion Flash 9
	 * @playerversion AIR 1.1
	 *
	 */
	public class Trends extends AbstractAPI
	{
		/**
		 * 日志输出对象
		 */
		public static var logger:ILogger=LevelLogger.getLogger("com.tencent.weibo.api.Trends");
		
		/**
		 * 1.话题热榜
		 * @param type 请求类型1 话题名，2 搜索关键字3 两种类型都有
		 * @param reqnum 请求个数（最多20）
		 * @param pos 请求位置，第一次请求时填0，继续填上次返回的pos
		 * @return IRequestOperation实例
		 */		
		public function ht(type:int=0,reqnum:int=20,pos:int=0):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"trends/ht";
			var attachParms:Object = {};
			attachParms.type = type;
			attachParms.reqnum = reqnum;
			attachParms.pos = pos;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 2.转播热榜
		 * @param type 微博消息类型 0x1-带文本 0x2-带链接 0x4-带图片 0x8-带视频 如需拉取多个类型请使用|，如(0x1|0x2)得到3，此时type=3即可，填零表示拉取所有类型
		 * @param reqnum 请求个数（最多20）
		 * @param pos 请求位置，第一次请求时填0，继续填上次返回的pos
		 * @return IRequestOperation实例
		 */		
		public function t(type:int=0,reqnum:int=20,pos:int=0):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"trends/t";
			var attachParms:Object = {};
			attachParms.type = type;
			attachParms.reqnum = reqnum;
			attachParms.pos = pos;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
		/**
		 * 3.推荐名人列表
		 * @param classid 请求的名人类别id（如：娱乐明星类别id:101）
		 * @param subclassid 请求的名人类别的子类别id（如媒体机构类别下子类别广播id：subclass_959，若为空，则默认一个子类别，没有子类别的，此处为空）
		 * @return IRequestOperation实例
		 */		
		public function famousList(classid:String,subclassid:String=""):IRequestOperation
		{
			checkAccessToken();
			var url:String = config.urlBase+"trends/famouslist";
			var attachParms:Object = {};
			attachParms.classid = classid;
			attachParms.subclassid = subclassid;
			return generateDataRequest(url,attachParms,config.requestMethod);
		}
	}
}